﻿using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using App_Negocio;

public partial class Alta_Cliente_Web : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        LoginStatus ls = (LoginStatus)this.Master.FindControl("loginStatus1");
        ls.Visible = false;

        if (!IsPostBack)
        {
            LimpiarCampos();
            lblEnviar.Text = string.Empty;
        }
    }

    protected void btnEnviar_Click(object sender, EventArgs e)
    {
        if (Page.IsValid)
        {
            Cliente cli = new Cliente();
            cli.Usuario = new App_Negocio.Usuario();

            cli.Usuario.NomUsuario = txtNombreUsuario.Text;
            cli.Usuario.Password = txtContrasenia.Text;
            cli.NomCliente = txtNombre.Text;
            cli.ApeCliente = txtApellido.Text;
            cli.TelCliente = int.Parse(txtTelefono.Text);
            cli.Email = txtEMail.Text;

            try
            {
                cli.CargarCliente();

                string roles = "Cliente";

                FormsAuthenticationTicket ticketDeAutenticacion = new FormsAuthenticationTicket(1,
                                                                txtNombreUsuario.Text,
                                                                DateTime.Now,
                                                                DateTime.Now.AddMinutes(30),
                                                                false,
                                                                roles,
                                                                FormsAuthentication.FormsCookiePath);

                //Encripto el Ticket
                string ticketEncriptado = FormsAuthentication.Encrypt(ticketDeAutenticacion);

                //Crear un Cookie y añadir la entrada para el cifrado de datos de cookie
                HttpCookie CookieDeAutentication = new HttpCookie(FormsAuthentication.FormsCookieName, ticketEncriptado);

                Response.Cookies.Add(CookieDeAutentication);

                Session["Identificador"] = cli.ClienteId;
                Session["Mensaje"] = "El cliente se registro con éxito";
                lblEnviar.Text = "El Usuario se registro con exito";
                Session["IrAPagina"] = "Principal_Clientes.aspx";
                Response.Redirect("bienvenida.aspx");

            }

            catch (Exception ex)
            {
                lblEnviar.Text = "El nombre de usuario ya existe, ingrese otro";
                txtNombreUsuario.Text = "";
                txtContrasenia.Text = "";
            }
        }
    }

    protected void LimpiarCampos()
    {
        txtNombreUsuario.Text = string.Empty;
        txtContrasenia.Text = string.Empty;
        txtNombre.Text = string.Empty;
        txtApellido.Text = string.Empty;
        txtTelefono.Text = string.Empty;
        txtEMail.Text = string.Empty;
    }

    protected void btnCancelar_Click(object sender, EventArgs e)
    {
        Response.Redirect("Inicio_web_Flash.aspx");
    }
}